package method;

/**
 * @Author Stringzhua
 * @Date 2024/2/28 14:07
 * description:
 */
public class MethodExercise02 {
    public static void main(String[] args) {
        Person p = new Person();
        p.name="milan";
        p.age=100;
        //创建mytools对象
        Tools Tools = new Tools();
        Person p2 = Tools.copyPerson(p);
        //此处的p和p2是person对象，但是是两个独立的对象，属性相同
        System.out.println("p的属性 = " + p.age);
        System.out.println("p的属性 = " + p.name);
        System.out.println("p2的属性 = " + p2.age);
        System.out.println("p2的属性 = " + p2.name);
        //可以通过输出对象的hashCode看对象是否为同一个
        System.out.println("p的hashCode()"+p.hashCode());
        System.out.println("p2的hashCode()"+p2.hashCode());//此处不是同一个对象
    }
}
class Person{
    String name;
    int age;
}
class Tools{
    /*
     * 编写一个方法CopyPerson,可以复制一个person对象,返回复制的对象,克隆对象
     * 注意要求得到的新对象和原来的对象是两个独立的对象,只是他们的属性相同
     * */
    /*
    * 编写方法思路
    * 1.方法的返回值类型 Person
    * 2.方法的名字 CopyPerson
    * 3.方法的形参 (Person p)
    * 4.方法体,创建新对象并赋值属性
    * */
    public Person copyPerson(Person p){
        Person p2 = new Person();
        p2.name=p.name;//把原来对象的名字赋给p2.name
        p2.age=p.age;//把原来对象的年龄赋给p2.name

        return p2;
    }
}